# 开发人员：萌狼蓝天
# 博客：Https://mllt.cc
# 笔记：Https://cnblogs.com/mllt
# 哔哩哔哩/微信公众号：萌狼蓝天
# 开发时间：2022/5/1
# Coding：UTF-8
import pygame
import random

pygame.init()


class User(pygame.sprite.Sprite):  # 父类型是pygame.sprite.Sprite
    def __init__(self, Object_image,WINDOW_height, WINDOW_width, center_x, center_y, speedx, speedy):
        """
        :param Object_image:精灵对象图片
        :param WINDOW_height: 游戏窗口高度
        :param WINDOW_width:游戏窗口宽度
        :param center_x: 精灵对象中心点X坐标
        :param center_y: 精灵对象中心点Y坐标
        :param speedx:x轴移动量
        :param speedy:y轴移动量
        """
        # 运行内置Sprite类初始化程序
        pygame.sprite.Sprite.__init__(self)
        self.WINDOW_height = WINDOW_height
        self.WINDOW_width = WINDOW_width
        self.image = pygame.image.load(Object_image).convert_alpha()
        self.rect = self.image.get_rect()  # 获取包围图片的矩形
        self.rect.center = (center_x, center_y)  # 将精灵放在屏幕中间居左
        self.speedx = speedx  # 控制精灵移动速度
        self.speedy = speedy  # 控制精灵移动速度
        self.mask = pygame.mask.from_surface(self.image)

    def update(self):
        key_pressed = pygame.key.get_pressed()  # 监听键盘，按下键返回ture,否flase
        if self.rect.top >= self.rect.height:
            if key_pressed[pygame.K_UP]:  # 键盘方向键上键
                self.rect.y -= self.speedy
        if self.rect.bottom <= (self.WINDOW_height - self.rect.height):
            if key_pressed[pygame.K_DOWN]:  # 键盘方向键下键
                self.rect.y += self.speedy
class Obstacle(pygame.sprite.Sprite):
    def __init__(self, Object_image, center_x, center_y, random_start, random_end):
        """
        :param WINDOW_height: 游戏窗口高度
        :param WINDOW_width:游戏窗口宽度
        :param Object_image:精灵对象图片
        :param center_x: 精灵对象中心点X坐标
        :param center_y: 精灵对象中心点Y坐标
        :param random_start:x轴移动量最小值
        :param random_end:x轴移动量最大值
        """
        # 运行内置Sprite类初始化程序
        pygame.sprite.Sprite.__init__(self)

        self.image = pygame.image.load(Object_image).convert_alpha()
        self.rect = self.image.get_rect()  # 获取包围图片的矩形
        self.rect.center = (center_x, center_y+random.randint(random_start,random_end))  # 将精灵放在屏幕中间居左
        self.mask = pygame.mask.from_surface(self.image)
        self.random_start = random_start
        self.random_end = random_end

    def update(self):
        self.rect.x -= 10
        if self.rect.right < 0:
            self.kill()  # 清除
